NOTE: PROCEDURE PRINTTO used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

4    
5    * This is the second part, where we append annual voting data and create the main variables;
6    * ;
7    
8    DM "log; clear; ";
9    DM 'odsresults; clear';
10   
11   %global projectrootdirectory;
12   %let projectrootdirectory=C:/Users/hpham13/Projects/mf_activism/empirical;
13   
14   *Creates your local Libraries;
15   libname rawdata "&projectrootdirectory./0_input/original";
NOTE: Libref RAWDATA was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Projects\mf_activism\empirical\0_input\original
16   libname rawdata3 "C:/Users/hpham13/Projects/mf_activism/empirical/1_code/python/";
NOTE: Libref RAWDATA3 was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Projects\mf_activism\empirical\1_code\python
17   libname rawdata4
17 ! "C:/Users/hpham13/Projects/mf_activism/empirical/1_code/python/npx_blockholdervote_results/"
17 ! ;
NOTE: Libref RAWDATA4 was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: 
      C:\Users\hpham13\Projects\mf_activism\empirical\1_code\python\npx_blockholdervote_results
18   libname mylib
18 ! "C:/Users/hpham13/Projects/mf_activism/empirical/1_code/python/npx_blockholdervote_results/"
18 ! ;
NOTE: Libref MYLIB refers to the same physical library as RAWDATA4.
NOTE: Libref MYLIB was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: 
      C:\Users\hpham13\Projects\mf_activism\empirical\1_code\python\npx_blockholdervote_results
19   libname save    "&projectrootdirectory./1_code/final_package_acceptance";
NOTE: Libref SAVE was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: 
      C:\Users\hpham13\Projects\mf_activism\empirical\1_code\final_package_acceptance
20   
21   
22   %global datadirectory;
23   %let datadirectory=C:/Users/hpham13/Data;
24   libname data "F:/Data/crsp/crsp_q_mutualfunds";
NOTE: Libref DATA was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: F:\Data\crsp\crsp_q_mutualfunds
25   libname compa "&datadirectory./compustat/funda/";
NOTE: Libref COMPA was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Data\compustat\funda
26   libname lnk "&datadirectory./Linking_tables/";
NOTE: Libref LNK was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Data\Linking_tables
27   libname ceo "&datadirectory./ceo/";
NOTE: Libref CEO was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Data\ceo
28   libname activism "&datadirectory./activism/" ;
NOTE: Libref ACTIVISM was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Data\activism
29   libname comp "&datadirectory./compustat/fundq/";
NOTE: Libref COMP was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Data\compustat\fundq
30   libname npx "F:/Data/Npx/";
NOTE: Libref NPX was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: F:\Data\Npx
31   libname crsp "&datadirectory./crsp/";
NOTE: Libref CRSP was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Data\crsp
32   libname tr "&datadirectory./ThomsonReuters/s12";
NOTE: Libref TR was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Data\ThomsonReuters\s12
33   libname lnk "&datadirectory./Linking_tables";
NOTE: Libref LNK was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Data\Linking_tables
34   libname mfl "&datadirectory./Linking_tables/mflink2_20230828";
NOTE: Libref MFL was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Data\Linking_tables\mflink2_20230828
35   
36   * macros;
37   %include "&datadirectory./utils/do_over.sas";
344  %include "&datadirectory./utils/ff48.sas";
416  %include "&datadirectory./utils/ff49.sas";
489  %include "&datadirectory./utils/ff12.sas";
528  %include "&datadirectory./utils/winsorize.sas";
616   %include "&datadirectory./utils/lags.sas";
795   
796   
797   /* ******************************************************************************** */
798   /*                  COMBINE ANNUAL NPX VOTING                                       */
799   /* ******************************************************************************** */
800   *in part 1, we run each year separately. It takes very long time to process each year due
800 ! to large NPX size;
801   proc sql ;
802       select memname into :dset_list separated by ' '
803       from dictionary.tables
804       where libname = 'MYLIB'
805           and memname like 'VOTE_PILOT_1_2%';
NOTE: Writing HTML Body file: sashtml.htm
806   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.36 seconds
      cpu time            0.26 seconds
      

807   
808   * Append all datasets - at the family-agenda level;
809   %macro append_datasets;
810       %let i = 1;
811       %let ds = %scan(&dset_list, &i);
812       data combined_data1;
813           set mylib.&ds;
814       run;
815       %let i = %eval(&i + 1);
816       %let ds = %scan(&dset_list, &i);
817       %do %while(&ds ne );
818           proc append base=combined_data1 data=mylib.&ds force;
819           run;
820           %let i = %eval(&i + 1);
821           %let ds = %scan(&dset_list, &i);
822       %end;
823   %mend append_datasets;
824   
825   %append_datasets;

NOTE: There were 414 observations read from the data set MYLIB.VOTE_PILOT_1_2003.
NOTE: The data set WORK.COMBINED_DATA1 has 414 observations and 31 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2004 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 1329 observations read from the data set MYLIB.VOTE_PILOT_1_2004.
NOTE: 1329 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 1743 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2005 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 8909 observations read from the data set MYLIB.VOTE_PILOT_1_2005.
NOTE: 8909 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 10652 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.03 seconds
      cpu time            0.01 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2006 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 13995 observations read from the data set MYLIB.VOTE_PILOT_1_2006.
NOTE: 13995 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 24647 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.05 seconds
      cpu time            0.01 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2007 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 48865 observations read from the data set MYLIB.VOTE_PILOT_1_2007.
NOTE: 48865 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 73512 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.16 seconds
      cpu time            0.09 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2008 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 59427 observations read from the data set MYLIB.VOTE_PILOT_1_2008.
NOTE: 59427 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 132939 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.20 seconds
      cpu time            0.03 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2009 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 132133 observations read from the data set MYLIB.VOTE_PILOT_1_2009.
NOTE: 132133 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 265072 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.43 seconds
      cpu time            0.15 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2010 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 77231 observations read from the data set MYLIB.VOTE_PILOT_1_2010.
NOTE: 77231 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 342303 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.26 seconds
      cpu time            0.09 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2011 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 133023 observations read from the data set MYLIB.VOTE_PILOT_1_2011.
NOTE: 133023 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 475326 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.44 seconds
      cpu time            0.14 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2012 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 140807 observations read from the data set MYLIB.VOTE_PILOT_1_2012.
NOTE: 140807 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 616133 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.47 seconds
      cpu time            0.18 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2013 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 163987 observations read from the data set MYLIB.VOTE_PILOT_1_2013.
NOTE: 163987 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 780120 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.55 seconds
      cpu time            0.18 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2014 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 100266 observations read from the data set MYLIB.VOTE_PILOT_1_2014.
NOTE: 100266 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 880386 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.33 seconds
      cpu time            0.03 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2015 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 264802 observations read from the data set MYLIB.VOTE_PILOT_1_2015.
NOTE: 264802 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 1145188 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.87 seconds
      cpu time            0.34 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2016 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 209823 observations read from the data set MYLIB.VOTE_PILOT_1_2016.
NOTE: 209823 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 1355011 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.68 seconds
      cpu time            0.15 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2017 to WORK.COMBINED_DATA1.
WARNING: Variable year was not found on DATA file.
NOTE: There were 363378 observations read from the data set MYLIB.VOTE_PILOT_1_2017.
NOTE: 363378 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 1718389 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           1.20 seconds
      cpu time            0.26 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2018 to WORK.COMBINED_DATA1.
WARNING: Variable InstitutionName has different lengths on BASE and DATA files 
         (BASE 255 DATA 100).
WARNING: Variable FundName has different lengths on BASE and DATA files (BASE 255 DATA 200).
WARNING: Variable CompanyName has different lengths on BASE and DATA files (BASE 80 DATA 110).
WARNING: Variable CountryOfInc has different lengths on BASE and DATA files (BASE 100 DATA 25).
WARNING: Variable SecurityID has different lengths on BASE and DATA files (BASE 14 DATA 12).
WARNING: Variable AgendaGeneralDesc has different lengths on BASE and DATA files 
         (BASE 255 DATA 270).
WARNING: Variable ItemDesc has different lengths on BASE and DATA files (BASE 255 DATA 270).
WARNING: Variable MgtRec has different lengths on BASE and DATA files (BASE 20 DATA 11).
WARNING: Variable FundVote has different lengths on BASE and DATA files (BASE 20 DATA 11).
WARNING: Variable NPXFileID has different lengths on BASE and DATA files (BASE 255 DATA 23).
WARNING: Variable year was not found on DATA file.
NOTE: FORCE is specified, so dropping/truncating will occur.
NOTE: There were 217284 observations read from the data set MYLIB.VOTE_PILOT_1_2018.
NOTE: 217284 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 1935673 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           0.76 seconds
      cpu time            0.12 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2019 to WORK.COMBINED_DATA1.
WARNING: Variable InstitutionName has different lengths on BASE and DATA files 
         (BASE 255 DATA 100).
WARNING: Variable FundName has different lengths on BASE and DATA files (BASE 255 DATA 200).
WARNING: Variable CompanyName has different lengths on BASE and DATA files (BASE 80 DATA 110).
WARNING: Variable CountryOfInc has different lengths on BASE and DATA files (BASE 100 DATA 25).
WARNING: Variable SecurityID has different lengths on BASE and DATA files (BASE 14 DATA 12).
WARNING: Variable AgendaGeneralDesc has different lengths on BASE and DATA files 
         (BASE 255 DATA 270).
WARNING: Variable ItemDesc has different lengths on BASE and DATA files (BASE 255 DATA 270).
WARNING: Variable MgtRec has different lengths on BASE and DATA files (BASE 20 DATA 11).
WARNING: Variable FundVote has different lengths on BASE and DATA files (BASE 20 DATA 11).
WARNING: Variable NPXFileID has different lengths on BASE and DATA files (BASE 255 DATA 23).
WARNING: Variable year was not found on DATA file.
NOTE: FORCE is specified, so dropping/truncating will occur.
NOTE: There were 365158 observations read from the data set MYLIB.VOTE_PILOT_1_2019.
NOTE: 365158 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 2300831 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           1.21 seconds
      cpu time            0.29 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2020 to WORK.COMBINED_DATA1.
WARNING: Variable InstitutionName has different lengths on BASE and DATA files 
         (BASE 255 DATA 100).
WARNING: Variable FundName has different lengths on BASE and DATA files (BASE 255 DATA 200).
WARNING: Variable CompanyName has different lengths on BASE and DATA files (BASE 80 DATA 110).
WARNING: Variable CountryOfInc has different lengths on BASE and DATA files (BASE 100 DATA 25).
WARNING: Variable SecurityID has different lengths on BASE and DATA files (BASE 14 DATA 12).
WARNING: Variable AgendaGeneralDesc has different lengths on BASE and DATA files 
         (BASE 255 DATA 270).
WARNING: Variable ItemDesc has different lengths on BASE and DATA files (BASE 255 DATA 270).
WARNING: Variable MgtRec has different lengths on BASE and DATA files (BASE 20 DATA 11).
WARNING: Variable FundVote has different lengths on BASE and DATA files (BASE 20 DATA 11).
WARNING: Variable NPXFileID has different lengths on BASE and DATA files (BASE 255 DATA 23).
WARNING: Variable year was not found on DATA file.
NOTE: FORCE is specified, so dropping/truncating will occur.
NOTE: There were 314347 observations read from the data set MYLIB.VOTE_PILOT_1_2020.
NOTE: 314347 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 2615178 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           1.10 seconds
      cpu time            0.29 seconds
      


NOTE: Appending MYLIB.VOTE_PILOT_1_2021 to WORK.COMBINED_DATA1.
WARNING: Variable InstitutionName has different lengths on BASE and DATA files 
         (BASE 255 DATA 100).
WARNING: Variable FundName has different lengths on BASE and DATA files (BASE 255 DATA 200).
WARNING: Variable CompanyName has different lengths on BASE and DATA files (BASE 80 DATA 110).
WARNING: Variable CountryOfInc has different lengths on BASE and DATA files (BASE 100 DATA 25).
WARNING: Variable SecurityID has different lengths on BASE and DATA files (BASE 14 DATA 12).
WARNING: Variable AgendaGeneralDesc has different lengths on BASE and DATA files 
         (BASE 255 DATA 270).
WARNING: Variable ItemDesc has different lengths on BASE and DATA files (BASE 255 DATA 270).
WARNING: Variable MgtRec has different lengths on BASE and DATA files (BASE 20 DATA 11).
WARNING: Variable FundVote has different lengths on BASE and DATA files (BASE 20 DATA 11).
WARNING: Variable NPXFileID has different lengths on BASE and DATA files (BASE 255 DATA 23).
WARNING: Variable year was not found on DATA file.
NOTE: FORCE is specified, so dropping/truncating will occur.
NOTE: There were 359161 observations read from the data set MYLIB.VOTE_PILOT_1_2021.
NOTE: 359161 observations added.
NOTE: The data set WORK.COMBINED_DATA1 has 2974339 observations and 31 variables.
NOTE: PROCEDURE APPEND used (Total process time):
      real time           1.28 seconds
      cpu time            0.23 seconds
      

826   
827   data vote_pilot_1;
828       set combined_data1;
829   run;

NOTE: There were 2974339 observations read from the data set WORK.COMBINED_DATA1.
NOTE: The data set WORK.VOTE_PILOT_1 has 2974339 observations and 31 variables.
NOTE: DATA statement used (Total process time):
      real time           3.12 seconds
      cpu time            2.37 seconds
      

830   
831   data vote_pilot_1;
832       set  vote_pilot_1;
833       meetingyr = year(MeetingDate);
834       meetingqtr = qtr(MeetingDate);
835   run;

NOTE: There were 2974339 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 2974339 observations and 33 variables.
NOTE: DATA statement used (Total process time):
      real time           3.90 seconds
      cpu time            2.92 seconds
      

836   
837   
838   /* ******************************************************************************** */
839   /*              MAKE FRIEND/NOTFRIEND VARS                                          */
840   /* ******************************************************************************** */
841   data vote_pilot_1;
842       set vote_pilot_1;
843       if FundVote = "For" then votedFor = 1 ; else votedFor = 0;
844       if FundVote = "Against" then votedAgainst = 1 ; else votedAgainst = 0;
845       if FundVote = "Abstain" then votedAbstain = 1 ; else votedAbstain = 0;
846       if FundVote = "Withhold" then votedWithheld = 1 ; else votedWithheld = 0;
847       if FundVote = "Do Not Vote" OR FundVote = "None" then brokerNonVote = 1 ; else
847 ! brokerNonVote = 0;
848   run;

NOTE: There were 2974339 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 2974339 observations and 38 variables.
NOTE: DATA statement used (Total process time):
      real time           3.22 seconds
      cpu time            2.84 seconds
      

849   
850   * Aggregate to the fund-agenda level;
851   proc sql;
852       create table vote_pilot_1 as
853       select *,
854              sum(votedFor) as FundvotedFor,
855              sum(votedAgainst) as FundvotedAgainst,
856              sum(votedAbstain) as FundvotedAbstain,
857              sum(votedWithheld) as FundvotedWithheld,
858              sum(brokerNonVote) as FundbrokerNonVote
859       from   vote_pilot_1
860       group  by gvkey, MeetingDate, InstitutionID, FundID, ItemOnAgendaID
861       order  by gvkey, MeetingDate, InstitutionID, FundID, ItemOnAgendaID;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.VOTE_PILOT_1 created, with 2974339 rows and 43 columns.

862   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           13.06 seconds
      cpu time            13.45 seconds
      

863   proc sort data=vote_pilot_1 nodupkey; by gvkey MeetingDate InstitutionID FundID
863 ! ItemOnAgendaID; run;

NOTE: There were 2974339 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: 1136531 observations with duplicate key values were deleted.
NOTE: The data set WORK.VOTE_PILOT_1 has 1837808 observations and 43 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           4.34 seconds
      cpu time            6.32 seconds
      

864   
865   data vote_pilot_1;
866       set vote_pilot_1;
867       drop   votedFor votedAgainst votedAbstain VotedWithheld brokerNonVote;
868       rename FundvotedFor = votedFor ;
869       rename FundvotedAgainst = votedAgainst;
870       rename FundvotedAbstain = votedAbstain;
871       rename FundvotedWithheld = VotedWithheld;
872       rename FundbrokerNonVote = brokerNonVote;;
873   run;

NOTE: There were 1837808 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 1837808 observations and 38 variables.
NOTE: DATA statement used (Total process time):
      real time           2.02 seconds
      cpu time            1.84 seconds
      

874   
875   
876   * Votefor and VotedAgainst variables ;
877   data vote_pilot_1;
878       set vote_pilot_1;
879       if VotedWithheld eq . then VotedWithheld = 0 ;
880       if sum(votedFor,votedAgainst,votedAbstain,brokerNonVote,VotedWithheld) > 0 then do;
881           IOAfor = votedFor/sum(votedFor,votedAgainst,votedAbstain,brokerNonVote) ;
882           IOAagainst = votedAgainst/sum(votedFor,votedAgainst,votedAbstain,brokerNonVote) ;
883           IOAabstain = votedAbstain/sum(votedFor,votedAgainst,votedAbstain,brokerNonVote) ;
884       end;
885   
886       if IOAfor ne .  ;
887       if IOAagainst ne .  ;
888       label IOAfor = "IOAfor";
889       label IOAagainst = "IOAagainst";
890       label IOAabstain = "IOAabstain";
891   run;

NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=MassMutual Financial Group InstitutionID=1011
FundName=MASSMUTUAL SELECT DIVERSIFIED VALUE FUND FundID=3552 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101513 SeqNumber=10 BallotItemNumber=1.10
ItemDesc=Elect Director David P. Wagener MgtRec=For FundVote=Withhold
NPXFileID=0001144204-15-051226 year=. keyID=1011        3552 CUSIP=723484101
mgmt_name=MassMutual Life Insurance Company mgmt_cd=MML
fund_name=MassMutual Select Funds: MassMutual Select Diversified Value Fund; Class I Shares
wficn=410491 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=36
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101504 SeqNumber=1 BallotItemNumber=1.1
ItemDesc=Elect Director Donald E. Brandt MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204      505027 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=391
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101505 SeqNumber=2 BallotItemNumber=1.2
ItemDesc=Elect Director Denis A. Cortese MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204      505027 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=392
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101506 SeqNumber=3 BallotItemNumber=1.3
ItemDesc=Elect Director Richard P. Fox MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204      505027 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=393
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101507 SeqNumber=4 BallotItemNumber=1.4
ItemDesc=Elect Director Michael L. Gallagher MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204      505027 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=394
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101508 SeqNumber=5 BallotItemNumber=1.5
ItemDesc=Elect Director Roy A. Herberger, Jr. MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204      505027 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=395
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101509 SeqNumber=6 BallotItemNumber=1.6
ItemDesc=Elect Director Dale E. Klein MgtRec=For FundVote=Withhold NPXFileID=0000928816-15-001116
year=. keyID=76204      505027 CUSIP=723484101 mgmt_name=Putnam Investment Management LLC
mgmt_cd=PUT fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=396
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101510 SeqNumber=7 BallotItemNumber=1.7
ItemDesc=Elect Director Humberto S. Lopez MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204      505027 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=397
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101511 SeqNumber=8 BallotItemNumber=1.8
ItemDesc=Elect Director Kathryn L. Munro MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204      505027 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=398
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101512 SeqNumber=9 BallotItemNumber=1.9
ItemDesc=Elect Director Bruce J. Nordstrom MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204      505027 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=399
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Strategic Volatility Equity Fund FundID=505027 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101513 SeqNumber=10 BallotItemNumber=1.10
ItemDesc=Elect Director David P. Wagener MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204      505027 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Strategic Volatility Equity Fund; Class Y Shares
wficn=602400 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=400
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Low Volatility Equity Fund FundID=5040787 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101504 SeqNumber=1 BallotItemNumber=1.1
ItemDesc=Elect Director Donald E. Brandt MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204     5040787 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Low Volatility Equity Fund; Class Y Shares wficn=602399
meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=404
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Low Volatility Equity Fund FundID=5040787 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101505 SeqNumber=2 BallotItemNumber=1.2
ItemDesc=Elect Director Denis A. Cortese MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204     5040787 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Low Volatility Equity Fund; Class Y Shares wficn=602399
meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=405
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Low Volatility Equity Fund FundID=5040787 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101506 SeqNumber=3 BallotItemNumber=1.3
ItemDesc=Elect Director Richard P. Fox MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204     5040787 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Low Volatility Equity Fund; Class Y Shares wficn=602399
meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=406
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Low Volatility Equity Fund FundID=5040787 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101507 SeqNumber=4 BallotItemNumber=1.4
ItemDesc=Elect Director Michael L. Gallagher MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204     5040787 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Low Volatility Equity Fund; Class Y Shares wficn=602399
meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=407
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Low Volatility Equity Fund FundID=5040787 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101508 SeqNumber=5 BallotItemNumber=1.5
ItemDesc=Elect Director Roy A. Herberger, Jr. MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204     5040787 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Low Volatility Equity Fund; Class Y Shares wficn=602399
meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=408
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Low Volatility Equity Fund FundID=5040787 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101509 SeqNumber=6 BallotItemNumber=1.6
ItemDesc=Elect Director Dale E. Klein MgtRec=For FundVote=Withhold NPXFileID=0000928816-15-001116
year=. keyID=76204     5040787 CUSIP=723484101 mgmt_name=Putnam Investment Management LLC
mgmt_cd=PUT fund_name=Putnam Funds Trust: Putnam Low Volatility Equity Fund; Class Y Shares
wficn=602399 meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=409
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Low Volatility Equity Fund FundID=5040787 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101510 SeqNumber=7 BallotItemNumber=1.7
ItemDesc=Elect Director Humberto S. Lopez MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204     5040787 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Low Volatility Equity Fund; Class Y Shares wficn=602399
meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=410
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Low Volatility Equity Fund FundID=5040787 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101511 SeqNumber=8 BallotItemNumber=1.8
ItemDesc=Elect Director Kathryn L. Munro MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204     5040787 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Low Volatility Equity Fund; Class Y Shares wficn=602399
meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=411
NOTE: Division by zero detected at line 881 column 26.
NOTE: Division by zero detected at line 882 column 34.
NOTE: Division by zero detected at line 883 column 34.
WARNING: Limit set by ERRORS= option reached.  Further errors of this type will not be printed.
gvkey=001075 LPERMNO=27991 CAMPAIGN_ID=1073546085C MEETING_DATE=2015-05-20
InstitutionName=Putnam Investment Management, Inc. InstitutionID=76204
FundName=Putnam Low Volatility Equity Fund FundID=5040787 CompanyID=122267
CompanyName=Pinnacle West Capital Corporation CountryOfInc=USA SecurityID=723484101
SecurityTypeID=1 MeetingID=962306 MeetingDate=20150520 ISSAgendaItemID=M0201
AgendaGeneralDesc=Elect Director ItemOnAgendaID=10101512 SeqNumber=9 BallotItemNumber=1.9
ItemDesc=Elect Director Bruce J. Nordstrom MgtRec=For FundVote=Withhold
NPXFileID=0000928816-15-001116 year=. keyID=76204     5040787 CUSIP=723484101
mgmt_name=Putnam Investment Management LLC mgmt_cd=PUT
fund_name=Putnam Funds Trust: Putnam Low Volatility Equity Fund; Class Y Shares wficn=602399
meetingyr=2015 meetingqtr=2 votedFor=0 votedAgainst=0 votedAbstain=0 VotedWithheld=1
brokerNonVote=0 IOAfor=. IOAagainst=. IOAabstain=. _ERROR_=1 _N_=412
NOTE: Mathematical operations could not be performed at the following places. The results of the 
      operations have been set to missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      34852 at 881:26   34852 at 882:34   34852 at 883:34   
NOTE: There were 1837808 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 1784977 observations and 41 variables.
NOTE: DATA statement used (Total process time):
      real time           2.42 seconds
      cpu time            2.12 seconds
      

892   
893   
894   * Identifying mangement-friendly votes ;
895   data vote_pilot_1;
896       set vote_pilot_1;
897           IOAfriend=IOAfor;
898           IOAnotfriend=IOAagainst+IOAabstain;
899   run;

NOTE: There were 1784977 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 1784977 observations and 43 variables.
NOTE: DATA statement used (Total process time):
      real time           1.95 seconds
      cpu time            1.81 seconds
      

900   
901   data vote_pilot_1;
902       set vote_pilot_1;
903       if  ISSAgendaItemID="M0201" OR ISSAgendaItemID="M0299" then do;
904           IOAfriend=IOAfor;
905           IOAnotfriend=IOAagainst+IOAabstain;
906       end;
907   run;

NOTE: There were 1784977 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 1784977 observations and 43 variables.
NOTE: DATA statement used (Total process time):
      real time           2.16 seconds
      cpu time            1.81 seconds
      

908   
909   data vote_pilot_1;
910       set vote_pilot_1;
911       if  ISSAgendaItemID="S0299" OR ISSAgendaItemID="M0225" then do;
912           IOAnotfriend=IOAfor;
913           IOAfriend=IOAagainst+IOAabstain;
914       end;
915   run;

NOTE: There were 1784977 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 1784977 observations and 43 variables.
NOTE: DATA statement used (Total process time):
      real time           2.07 seconds
      cpu time            1.84 seconds
      

916   
917   data vote_pilot_1;
918       set vote_pilot_1;
919       if ISSAgendaItemID NE "M0201" OR ISSAgendaItemID NE"M0299" OR ISSAgendaItemID NE
919 ! "S0299" OR ISSAgendaItemID NE "M0225" then do;
920           if  MGTrec="For" then do;
921               IOAnotfriend=IOAagainst+IOAabstain;
922               IOAfriend=IOAfor;
923           end;
924           if  MGTrec="Against" then do;
925               IOAnotfriend=IOAfor+IOAabstain;
926               IOAfriend=IOAagainst;
927           end;
928       end;
929   
930       if IOAfriend eq . then delete;
931       label IOAfriend = "IOAfriend (fund)";
932       label IOAnotfriend = "IOAnotfriend (fund)";
933   
934   run;

NOTE: There were 1784977 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 1784977 observations and 43 variables.
NOTE: DATA statement used (Total process time):
      real time           1.93 seconds
      cpu time            1.79 seconds
      

935   
936   * sort data;
937   proc sort data=vote_pilot_1;
938       by gvkey MeetingDate InstitutionName FundName ISSAgendaItemID ItemOnAgendaID ;
939   run;

NOTE: There were 1784977 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 1784977 observations and 43 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           3.84 seconds
      cpu time            5.79 seconds
      

940   
941   * Get the last date of each quarter;
942   data vote_pilot_1;
943       set vote_pilot_1;
944       format prev_quarter  next_quarter date9. ;
945       prev_quarter = intnx('qtr', MEETING_DATE, -2, 'end');
946       next_quarter = intnx('qtr', MEETING_DATE, 0, 'end');
947   run;

NOTE: There were 1784977 observations read from the data set WORK.VOTE_PILOT_1.
NOTE: The data set WORK.VOTE_PILOT_1 has 1784977 observations and 45 variables.
NOTE: DATA statement used (Total process time):
      real time           2.56 seconds
      cpu time            2.07 seconds
      

948   
949   
950   /* ******************************************************************************** */
951   /*                      MAKE EW OR VW VOTES                                         */
952   /* ******************************************************************************** */
953   * holding data;
954   data holdings;
955       set rawdata3.Mf_merged3_042825;
956   run;

NOTE: There were 14308623 observations read from the data set RAWDATA3.MF_MERGED3_042825.
NOTE: The data set WORK.HOLDINGS has 14308623 observations and 28 variables.
NOTE: DATA statement used (Total process time):
      real time           23.24 seconds
      cpu time            3.12 seconds
      

957   
958   proc sql;
959       create table temp_vote_dates as
960       select distinct lpermno, MEETING_DATE, next_quarter, prev_quarter from vote_pilot_1 ;
NOTE: Table WORK.TEMP_VOTE_DATES created, with 1598 rows and 4 columns.

961   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.84 seconds
      cpu time            0.68 seconds
      

962   
963   proc sql;
964       create  table holdings2 as
965       select  b.MEETING_DATE, b.next_quarter, b.prev_quarter, a.*
966       from    holdings as a join temp_vote_dates as b
967       on      a.permno = b.lpermno
968       where   a.date <= b.next_quarter  &  a.date >= b.prev_quarter ;
NOTE: Table WORK.HOLDINGS2 created, with 490110 rows and 31 columns.

969   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           5.28 seconds
      cpu time            2.85 seconds
      

970   proc sort data=holdings2 nodupkey; by _all_ ; run;

NOTE: There were 490110 observations read from the data set WORK.HOLDINGS2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.HOLDINGS2 has 490110 observations and 31 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.23 seconds
      cpu time            0.51 seconds
      

971   
972   proc sort data=holdings2; by permno wficn date; run;

NOTE: There were 490110 observations read from the data set WORK.HOLDINGS2.
NOTE: The data set WORK.HOLDINGS2 has 490110 observations and 31 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.18 seconds
      cpu time            0.32 seconds
      

973   data holdings2;
974       set     holdings2;
975       by      permno wficn date;
976       if      last.wficn;
977   run;

NOTE: There were 490110 observations read from the data set WORK.HOLDINGS2.
NOTE: The data set WORK.HOLDINGS2 has 131259 observations and 31 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.09 seconds
      

978   
979   
980   ************************************************************************************
981   *                       CALCULATE THE WEIGHT FOR VW VOTEDFIREND
982   ************************************************************************************;
983   proc sql;
984       create  table vote_pilot_2 as
985       select  a.*, b.shares_adj, b.LargeMF, b.mgmt_cd as mgmt_cd_check, b.date
986       from    vote_pilot_1 as a left join holdings2 as b
987       on      a.wficn = b.wficn and
988               a.lpermno = b.permno and
989               a.MEETING_DATE = b.MEETING_DATE
990       where   b.shares_adj ne .
991       order   by gvkey, MeetingDate, InstitutionName, FundName, ItemOnAgendaID ;
NOTE: Table WORK.VOTE_PILOT_2 created, with 542867 rows and 49 columns.

992   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           9.05 seconds
      cpu time            7.87 seconds
      

993   
994   * require at least 1 large MF each meeting date  ;
995   proc sql;
996       create table vote_pilot_2 as
997       select *
998       from vote_pilot_2
999       group by gvkey, MeetingDate
1000      having max(LargeMF) = 1;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.VOTE_PILOT_2 created, with 418929 rows and 49 columns.

1001  run;
NOTE: PROC SQL statements are executed immediately; The RUN statement has no effect.
1002  
1003  * calculate the weight at the fundfamily-agenda level;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.85 seconds
      cpu time            0.84 seconds
      

1004  proc sql;
1005      create  table holdings_vote as
1006      select  distinct gvkey, lpermno, CAMPAIGN_ID, MeetingDate, InstitutionID, FundID,
1006! ItemOnAgendaID, shares_adj
1007      from    vote_pilot_2
1008      order   by gvkey, lpermno, CAMPAIGN_ID, MeetingDate, InstitutionID, FundID ;
NOTE: Table WORK.HOLDINGS_VOTE created, with 418929 rows and 8 columns.

1009  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.22 seconds
      cpu time            0.31 seconds
      

1010  proc sort data=holdings_vote nodupkey; by gvkey CAMPAIGN_ID InstitutionID FundID
1010! ItemOnAgendaID ; run;

NOTE: There were 418929 observations read from the data set WORK.HOLDINGS_VOTE.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.HOLDINGS_VOTE has 418929 observations and 8 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.09 seconds
      

1011  
1012  proc sql;
1013      create  table holdings_vote2 as
1014      select  gvkey, lpermno, CAMPAIGN_ID, MeetingDate, InstitutionID, ItemOnAgendaID,
1014! FundID,
1015              sum(shares_adj) as shares_adj_mff label="Total Shares of voting funds"
1016              ,shares_adj/sum(shares_adj) as weight format comma8.3
1017      from    holdings_vote
1018      group   by gvkey, CAMPAIGN_ID, InstitutionID, ItemOnAgendaID ;
NOTE: The query requires remerging summary statistics back with the original data.
NOTE: Table WORK.HOLDINGS_VOTE2 created, with 418929 rows and 9 columns.

1019  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.15 seconds
      cpu time            0.20 seconds
      

1020  proc sort data=holdings_vote2 nodupkey; by gvkey CAMPAIGN_ID InstitutionID ItemOnAgendaID
1020! FundID ; run;

NOTE: There were 418929 observations read from the data set WORK.HOLDINGS_VOTE2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.HOLDINGS_VOTE2 has 418929 observations and 9 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.15 seconds
      

1021  
1022  proc sql;
1023      create  table vote_pilot_2 as
1024      select  a.*,
1025              b.shares_adj_mff, b.weight
1026      from    vote_pilot_2 as a left join holdings_vote2 as b
1027      on      a.lpermno=b.lpermno and
1028              a.gvkey=b.gvkey and
1029              a.CAMPAIGN_ID=b.CAMPAIGN_ID and
1030              a.MeetingDate=b.MeetingDate and
1031              a.InstitutionID=b.InstitutionID and
1032              a.FundID=b.FundID and
1033              a.ItemOnAgendaID=b.ItemOnAgendaID
1034      where   shares_adj_mff ne . ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.VOTE_PILOT_2 created, with 418929 rows and 51 columns.

1035  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.48 seconds
      cpu time            1.90 seconds
      

1036  
1037  proc sort data=vote_pilot_2 nodupkey;
1038      by gvkey MeetingDate InstitutionID ItemOnAgendaID FundID ;
1039  run;

NOTE: There were 418929 observations read from the data set WORK.VOTE_PILOT_2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.VOTE_PILOT_2 has 418929 observations and 51 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.59 seconds
      cpu time            0.81 seconds
      

1040  
1041  * Calculate EW and VW ;
1042  proc sql;
1043      create  table vote_pilot_3 as
1044      select  gvkey, lpermno, cusip, CAMPAIGN_ID,
1045              InstitutionName, InstitutionID, FundName, FundID, CompanyID, CompanyName,
1046              MeetingDate, MeetingID, ISSAgendaItemID, AgendaGeneralDesc, ItemOnAgendaID,
1047              shares_adj, shares_adj_mff, LargeMF, weight,
1048              IOAfriend, IOAnotfriend,
1049              sum(IOAfriend) as IOAfriend_total,
1050              sum(IOAnotfriend) as IOAnotfriend_total,
1051              count(*) as IOAcount
1052      from    vote_pilot_2
1053      group   by gvkey, CAMPAIGN_ID, InstitutionID, ItemOnAgendaID
1054      order   by gvkey, CAMPAIGN_ID, InstitutionID, ItemOnAgendaID, FundID ;
NOTE: The query requires remerging summary statistics back with the original data.
NOTE: Table WORK.VOTE_PILOT_3 created, with 418929 rows and 24 columns.

1055  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.85 seconds
      cpu time            1.20 seconds
      

1056  
1057  data vote_pilot_3;
1058      set vote_pilot_3;
1059      EW_IOAfriend = IOAfriend/IOAcount ;
1060      VW_IOAfriend = IOAfriend*weight ;
1061      label  EW_IOAfriend="EW_IOAfriend" ;
1062      label  VW_IOAfriend="VW_IOAfriend" ;
1063      format EW_IOAfriend VW_IOAfriend percentn8.3 ;
1064      if EW_IOAfriend ne . ;
1065      if VW_IOAfriend ne . ;
1066  run;

NOTE: There were 418929 observations read from the data set WORK.VOTE_PILOT_3.
NOTE: The data set WORK.VOTE_PILOT_3 has 418929 observations and 26 variables.
NOTE: DATA statement used (Total process time):
      real time           0.23 seconds
      cpu time            0.21 seconds
      

1067  proc sort data=vote_pilot_3 nodupkey; by gvkey CAMPAIGN_ID MeetingDate InstitutionID
1067! ItemOnAgendaID FundID  ; run;

NOTE: There were 418929 observations read from the data set WORK.VOTE_PILOT_3.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.VOTE_PILOT_3 has 418929 observations and 26 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.33 seconds
      cpu time            0.50 seconds
      

1068  
1069  * Aggregate EW and VW voting at the family-agenda level ;
1070  proc sql;
1071      create  table vote_pilot_4 as
1072      select  gvkey, lpermno, CAMPAIGN_ID, InstitutionName, InstitutionID,
1073              CompanyID, CompanyName, MeetingDate, MeetingID, ISSAgendaItemID,
1073! AgendaGeneralDesc, ItemOnAgendaID, shares_adj_mff, LargeMF,
1074              sum(EW_IOAfriend) as EW_IOAfriend_total format percentn8.3 label="Tot
1074! EW_IOAfriend (family)",
1075              sum(VW_IOAfriend) as VW_IOAfriend_total format percentn8.3 label="Tot
1075! VW_IOAfriend (family)"
1076      from    vote_pilot_3
1077      group   by gvkey, CAMPAIGN_ID, InstitutionID, ItemOnAgendaID
1078      order   by gvkey, CAMPAIGN_ID, InstitutionID, FundID, ItemOnAgendaID ;
NOTE: The query as specified involves ordering by an item that doesn't appear in its SELECT 
      clause.
NOTE: The query requires remerging summary statistics back with the original data.
NOTE: Table WORK.VOTE_PILOT_4 created, with 418929 rows and 16 columns.

1079  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.63 seconds
      cpu time            0.95 seconds
      

1080  proc sort data=vote_pilot_4 nodupkey; by gvkey CAMPAIGN_ID MeetingDate InstitutionID
1080! ItemOnAgendaID ; run;

NOTE: There were 418929 observations read from the data set WORK.VOTE_PILOT_4.
NOTE: 176561 observations with duplicate key values were deleted.
NOTE: The data set WORK.VOTE_PILOT_4 has 242368 observations and 16 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.20 seconds
      cpu time            0.28 seconds
      

1081  
1082  * Import the voting analytics data to get meetingtype;
1083  data vavote;
1084      set activism.vavoteresults_12092024;
1085  run;

NOTE: There were 787289 observations read from the data set ACTIVISM.VAVOTERESULTS_12092024.
NOTE: The data set WORK.VAVOTE has 787289 observations and 29 variables.
NOTE: DATA statement used (Total process time):
      real time           1.70 seconds
      cpu time            0.35 seconds
      

1086  
1087  proc sql;
1088      create table combined_data as
1089      select a.*, b.MeetingType
1090      from vote_pilot_4 as a left join (select distinct MeetingType, meetingid,
1090! ItemOnAgendaID from vavote) as b
1091      on a.meetingid=b.meetingid and a.ItemOnAgendaID=b.ItemOnAgendaID ;
NOTE: Table WORK.COMBINED_DATA created, with 242368 rows and 17 columns.

1092  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.50 seconds
      cpu time            0.68 seconds
      

1093  
1094  * calculate the voting difference between BH and SH;
1095  data combined_data2;
1096      set     combined_data;
1097      format  EW_IOAfriend_total VW_IOAfriend_total comma8.4;
1098  run;

NOTE: There were 242368 observations read from the data set WORK.COMBINED_DATA.
NOTE: The data set WORK.COMBINED_DATA2 has 242368 observations and 17 variables.
NOTE: DATA statement used (Total process time):
      real time           0.08 seconds
      cpu time            0.07 seconds
      

1099  proc sort data=combined_data2 nodupkey; by gvkey CAMPAIGN_ID InstitutionID ItemOnAgendaID
1099! LargeMF; run;

NOTE: There were 242368 observations read from the data set WORK.COMBINED_DATA2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.COMBINED_DATA2 has 242368 observations and 17 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.15 seconds
      cpu time            0.21 seconds
      

1100  
1101  * Aggregate the voting results;
1102  proc sql;
1103      create table combined_data2 as
1104      select  *,
1105              avg(EW_IOAfriend_total) as avg_EW_IOAfriend label="EW_IOAfriend",
1106              avg(VW_IOAfriend_total) as avg_VW_IOAfriend label="VW_IOAfriend"
1107      from    combined_data2
1108      group   by gvkey, CAMPAIGN_ID, ItemOnAgendaID
1109      having  max(LargeMF) eq 1
1110      order   by gvkey, CAMPAIGN_ID, ItemOnAgendaID, LargeMF, InstitutionID  ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.COMBINED_DATA2 created, with 219372 rows and 19 columns.

1111  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.34 seconds
      cpu time            0.46 seconds
      

1112  
1113  data combined_data2;
1114      set combined_data2;
1115      if LargeMF = 1 then EW_IOAfriend_L = EW_IOAfriend_total;
1116      if LargeMF = 0 then EW_IOAfriend_S = EW_IOAfriend_total;
1117      if LargeMF = 1 then VW_IOAfriend_L = VW_IOAfriend_total;
1118      if LargeMF = 0 then VW_IOAfriend_S = VW_IOAfriend_total;
1119  run;

NOTE: There were 219372 observations read from the data set WORK.COMBINED_DATA2.
NOTE: The data set WORK.COMBINED_DATA2 has 219372 observations and 23 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.09 seconds
      

1120  
1121  * Calculate the average voting of BH and SH;
1122  proc sql;
1123      create table combined_data2 as
1124      select  *,
1125              avg(EW_IOAfriend_L) as avg_EW_IOAfriend_L,
1126              avg(EW_IOAfriend_S) as avg_EW_IOAfriend_S,
1127              avg(VW_IOAfriend_L) as avg_VW_IOAfriend_L,
1128              avg(VW_IOAfriend_S) as avg_VW_IOAfriend_S
1129      from    combined_data2
1130      group   by gvkey, CAMPAIGN_ID, ItemOnAgendaID
1131      having  max(LargeMF) eq 1
1132      order   by gvkey, CAMPAIGN_ID, ItemOnAgendaID, LargeMF, InstitutionID  ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.COMBINED_DATA2 created, with 219372 rows and 27 columns.

1133  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.35 seconds
      cpu time            0.50 seconds
      

1134  proc sort data=combined_data2 ; by gvkey CAMPAIGN_ID CompanyName CompanyID MeetingDate
1134! MeetingID ItemOnAgendaID descending shares_adj_mff ; run;

NOTE: There were 219372 observations read from the data set WORK.COMBINED_DATA2.
NOTE: The data set WORK.COMBINED_DATA2 has 219372 observations and 27 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.14 seconds
      cpu time            0.25 seconds
      

1135  
1136  data combined_data2; set combined_data2;
1137      drop shares_adj_mff;
1138  run;

NOTE: There were 219372 observations read from the data set WORK.COMBINED_DATA2.
NOTE: The data set WORK.COMBINED_DATA2 has 219372 observations and 26 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.09 seconds
      

1139  
1140  * Calculate the voting difference between BH and SH;
1141  data combined_data2;
1142      set combined_data2;
1143      EW_IOAfriend_diff = sum(avg_EW_IOAfriend_L, -1*avg_EW_IOAfriend_S);
1144      VW_IOAfriend_diff = sum(avg_VW_IOAfriend_L, -1*avg_VW_IOAfriend_S);
1145      format avg_EW_IOAfriend_L avg_EW_IOAfriend_S avg_VW_IOAfriend_L avg_VW_IOAfriend_S
1145! EW_IOAfriend_diff VW_IOAfriend_diff avg_EW_IOAfriend avg_VW_IOAfriend comma8.4 ;
1146      label  EW_IOAfriend_diff = "EW IOAFriend Difference";
1147      label  VW_IOAfriend_diff = "VW IOAFriend Difference";
1148  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      482 at 1143:51   482 at 1144:51   
NOTE: There were 219372 observations read from the data set WORK.COMBINED_DATA2.
NOTE: The data set WORK.COMBINED_DATA2 has 219372 observations and 28 variables.
NOTE: DATA statement used (Total process time):
      real time           0.10 seconds
      cpu time            0.09 seconds
      

1149  
1150  * clean;
1151  data combined_data2;
1152      set combined_data2;
1153      keep gvkey CAMPAIGN_ID CompanyName CompanyID MeetingDate MeetingID MeetingType
1153! ItemOnAgendaID ISSAgendaItemID
1154           EW_IOAfriend_diff VW_IOAfriend_diff avg_EW_IOAfriend avg_VW_IOAfriend
1155           avg_EW_IOAfriend_L avg_EW_IOAfriend_S avg_VW_IOAfriend_L avg_VW_IOAfriend_S ;
1156      if EW_IOAfriend_diff ne . ;
1157      if VW_IOAfriend_diff ne . ;
1158      if avg_EW_IOAfriend_L ne . ;
1159      if avg_EW_IOAfriend_S ne . ;
1160  run;

NOTE: There were 219372 observations read from the data set WORK.COMBINED_DATA2.
NOTE: The data set WORK.COMBINED_DATA2 has 218890 observations and 17 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.06 seconds
      

1161  
1162  proc sort data=combined_data2 ;
1163      by gvkey CAMPAIGN_ID CompanyName CompanyID MeetingDate MeetingID ISSAgendaItemID
1163! ItemOnAgendaID ;
1164  run;

NOTE: There were 218890 observations read from the data set WORK.COMBINED_DATA2.
NOTE: The data set WORK.COMBINED_DATA2 has 218890 observations and 17 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.12 seconds
      

1165  
1166  * Import the agenda proposal type ;
1167  proc import out=agenda
1168     datafile = 'C:/Users/hpham13/Data/activism/Agendatype_11152021.xlsx'
1169     dbms = XLSX replace;
1170  run;

NOTE: One or more variables were converted because the data type is not supported by the V9 
      engine. For more details, run with options MSGLEVEL=I.
NOTE: The import data set has 101 observations and 4 variables.
NOTE: WORK.AGENDA data set was successfully created.
NOTE: PROCEDURE IMPORT used (Total process time):
      real time           0.03 seconds
      cpu time            0.00 seconds
      

1171  proc sort data=agenda nodupkey; by ISSAgendaItemID ; run;

NOTE: There were 101 observations read from the data set WORK.AGENDA.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.AGENDA has 101 observations and 4 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

1172  
1173  * Merge Agenda Proposal type to Voting data ;
1174  proc sql;
1175      create table combined_data2 as
1176      select a.*, b.proposal_type, b.Proposal
1177      from combined_data2 as a left join agenda as b
1178      on a.ISSAgendaItemID=b.ISSAgendaItemID;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.COMBINED_DATA2 created, with 218890 rows and 19 columns.

1179  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.10 seconds
      cpu time            0.09 seconds
      

1180  
1181  * final data;
1182  data combined_data3;
1183      set combined_data2;
1184      keep gvkey CAMPAIGN_ID MeetingDate MeetingID MeetingType ItemOnAgendaID ISSAgendaItemID
1185           EW_IOAfriend_diff VW_IOAfriend_diff avg_EW_IOAfriend avg_VW_IOAfriend
1186           avg_EW_IOAfriend_L avg_EW_IOAfriend_S avg_VW_IOAfriend_L avg_VW_IOAfriend_S
1187           proposal_type Proposal  ;
1188  run;

NOTE: There were 218890 observations read from the data set WORK.COMBINED_DATA2.
NOTE: The data set WORK.COMBINED_DATA3 has 218890 observations and 17 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
      

1189  proc sort data=combined_data3 nodupkey; by gvkey CAMPAIGN_ID MeetingDate MeetingID
1189! ItemOnAgendaID  ; run;

NOTE: There were 218890 observations read from the data set WORK.COMBINED_DATA3.
NOTE: 207853 observations with duplicate key values were deleted.
NOTE: The data set WORK.COMBINED_DATA3 has 11037 observations and 17 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.07 seconds
      

1190  
1191  * save the output;
1192  data save.npxvoteblock;
1193      set combined_data3;
1194  run;

NOTE: There were 11037 observations read from the data set WORK.COMBINED_DATA3.
NOTE: The data set SAVE.NPXVOTEBLOCK has 11037 observations and 17 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1195  
1196  proc printto;
1197  run;

